<?php

/**
 *      [Discuz!] (C)2001-2099 Comsenz Inc.
 *      This is NOT a freeware, use is subject to license terms
 *
 *      $Id: bind.inc.php 35024 2014-10-14 07:43:43Z nemohou $
 */
if (!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

if ($_GET['unbind'] && $_GET['unbind'] == FORMHASH) {
    require_once libfile('function/member');
    C::t('#mobile#common_member_wechat')->delete($_G['uid']);
    clearcookies();
    showmessage('wechat:wechat_message_unbinded', dreferer());
}

if ($_G['uid'] && submitcheck('confirmsubmit')) {
    loaducenter();
    $ucresult = uc_user_login($_G['uid'], $_GET['passwordconfirm'], 1, 0);
    if ($ucresult['status'] >= 0) {
        dsetcookie('qrauth', base64_encode(authcode($ucresult['status'], 'ENCODE', $_G['config']['security']['authkey'], 300)));
        showmessage('', dreferer());
    }
    showmessage('login_password_invalid');
}

if (isset($_GET['check'])) {
    $code = authcode(base64_decode($_GET['check']), 'DECODE', $_G['config']['security']['authkey']);
    if ($code) {
        $authcode = C::t('#wechat#mobile_wechat_authcode')->fetch_by_code($code);
        if ($authcode['status']) {
            require_once libfile('function/member');
            $member = getuserbyuid($authcode['uid'], 1);
            setloginstatus($member, 1296000);
            dsetcookie('wechat_ticket', '', -1);
            $echostr = 'done';
        } else {
            $echostr = '1'; //json_encode($authcode);
        }
    } else {
        $echostr = '-1';
    }

    if (!ob_start($_G['gzipcompress'] ? 'ob_gzhandler' : null)) {
        ob_start();
    }

    if ($echostr === 'done') {
        C::t('#wechat#mobile_wechat_authcode')->delete($authcode['sid']);
    }

    include template('common/header_ajax');
    echo $echostr;
    include template('common/footer_ajax');
    exit;
}

if ($_G['cookie']['qrauth']) {
    $qrauth = authcode(base64_decode($_G['cookie']['qrauth']), 'DECODE', $_G['config']['security']['authkey']);
}

if (!$_G['wechat']['setting']['wechat_qrtype']) {
    require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.lib.class.php';
    require_once DISCUZ_ROOT . './source/plugin/wechat/wsq.class.php';
    list($isqrapi, $qrcodeurl, $codeenc, $code) = WeChat::getqrcode();
    wsq::report('siteqrshow');
}

if ($_G['uid'] && !$qrauth && in_array('qqconnect', $_G['setting']['plugins']['available'])) {
    $connect = C::t('#qqconnect#common_member_connect')->fetch($_G['uid']);
    if ($connect['conisregister']) {
        if (!$_G['wechat']['setting']['wechat_qrtype']) {
            $qrauth = true;
        } else {
            showmessage('', 'plugin.php?id=wechat:login', array(), array('redirectmsg' => 1, 'location' => 1));
        }
    }
}

include_once template('wechat:wechat_qrcode');
